import Vue from 'vue'
import Vuex from 'vuex'
import cart from './modules/cart'
// 导入用户模块
import user from './modules/user'
Vue.use(Vuex)
export default new Vuex.Store({
  // state定义数据（像组件的data）
  state: {
    userInfo:{
      "name":"zeng8",
      "id":3,
      "score":2500,
      "user_group":11,
      "avatar":"http://dida100.com:8888/uploads/file-1667741859911.jpg"
    }
  },
  getters: {
    // getters像组件的computed
    // 把现有的数据计算出新的数据
    // state默认传入的
    // gold计算出来
    gold(state){
      return Math.floor(state.userInfo.score/10)
    }
  },
  // mutations修改state数据的唯一方法
  // 像组件的methods
  mutations: {
    // 执行ADD_SCORE 积分默认加100
    // state默认传入的，data用户调用传入的参数
    // mutations中的方法国际惯例大小
      ADD_SCORE(state,data=100){
        state.userInfo.score+=data;
      }
  },
  // 异步操作，与后端接口放在actions中
  actions: {
    setScore(context,data){
      // 模拟异步操作
      setTimeout(()=>{
        // 调用mutations
        context.commit("ADD_SCORE",data)
      },2000)
    }
  },
  modules: {
    cart,user
  }
})
